Data transfer protocols are used to facilitate communication between electronic devices by providing a common set of rules by which data may be exchanged between one device and another. A universal protocol could theoretically allow one device to communicate with any other device, from simple devices like the lights in a room to complex devices like personal computers. However, to approach such an ideal, the protocol itself has to be usable with at least a significant proportion of the devices. Different types of devices have different characteristics such as microprocessor abilities, free memory, and accompanying costs. In addition, consumer devices are produced by a wide variety of manufacturers. Coordination and cooperation in interfacing a wide variety of electronic devices is very difficult.
Many times in the past, manufacturers have made attempts to allow consumer level devices to be able to communicate meaningful data or commands to one another. Many protocols define data links between standard small devices. However, this also meant that usually the “standard” became only a standard for that genre of device. Further, while these protocols provide a data link, they do not provide a standard method to allow simple relevant information transfer between two small devices. For example, a typical pager cannot send control information to any particular cellular telephone requesting the cellular telephone to initiate a call to a certain number; a “caller-ID” box is not able to instruct a PDA to display all the contact information for the person who is calling; and a PDA cannot print or fax (without a modem or special drivers).
The Inventor of the present invention has developed a protocol and method to facilitate communication between various electronic devices and the sharing of features, functionality and information between these devices which has been described in the invention, U.S. application Ser. No. 09/369,118, entitled “Universal Protocol for Enabling a Device to Discover and Utilize the Services of Another Device,” the entirety of which is incorporated herein by reference. This universal protocol is known as the Service Discovery Transport Protocol (“SDTP”).
For background information helpful in understanding the present invention, a description of SDTP follows. SDTP is a protocol for facilitating communication between various electronic devices and the sharing of features, functionality and information between these devices. In general, SDTP is a protocol by which one device (the “client device”) can discover what services are offered by another device (the “server device”). Utilizing this protocol, the client device can take advantage of the services of the server device. Advantageously, the SDTP is simple enough to be used by nearly any type of electronic device, but at the same time it is robust enough to allow a user to author high-level applications utilizing multiple different services available from multiple devices without requiring the user to have any knowledge of any particular device interface or how the device works. SDTP is capable of use by a wide range of consumer devices allowing them to interact by standardizing many of the normal tasks associated with these devices. SDTP provides a simple data link between these devices.
The operation of SDTP actually begins when the server device sends a message to the client device to inform the client device that it is capable of communicating using the protocol. This message and all subsequent messages may be sent using standard 8-bit ASCII characters. Once the client device determines that the server device is capable of communicating using the protocol, the client device may request the server device to identify what kinds of services the server provides. This request is performed by transmitting a type-command to the server device.
Upon receiving the type-command, the server device responds by transmitting one or more device/service identifiers back to the client device. Each device/service identifier is unique, and represents either a specific device type identification (“ID”), such as a thermostat, a door, a pager, a PDA or many others, or a specific service type identification (“SD”), such as the ability to raise the temperature of the thermostat or to transmit the messages stored in the pager. Finally, the server device transmits a standard ASCII sequence to signal the last of the device/service identifiers.
After the server device identifies itself as being capable of using the protocol, the client device may issue commands to the server device using the unique service identifiers just described. Any necessary parameters may be passed along as well. If everything operates correctly, the service identified by the command is then provided by the server device. Finally, the server device responds to each such command by sending a status code back to the client device. The status code denotes that either: (a) the requested service was unavailable; (b) the server device was unable to complete the operation; (c) the command contained a syntax error; or (d) that the operation completed successfully.
SDTP also supports “learning” new services with which the client is not previously familiar. To invoke this capability, the client device transmits a use-command to the server device to identify the service that the client wishes to learn. Upon receiving the use-command, the server device transmits a service identifier corresponding to the new service and any available parameters. The client device may then invoke the service by sending the service identifier and the requisite parameters.
As the above description of the applicant's SDTP invention shows, attempts have been made in the past to allow various consumer level devices to communicate with one another across a room or perhaps even from room to room within a house; however, there has not been available a method for facilitating communication between consumer devices situated in different locations. For example, there is no protocol for enabling a consumer device at one's home to communicate with a consumer device at one's office. By the same token, there is no protocol for enabling a person's consumer device in a building's conference room facility to communicate with a consumer device in that person's office within the same building.
Therefore, a method is needed to facilitate communications between consumer devices where the consumer devices are located remotely from each other.